100 IFML=1THEN850 110 IFML=2THENML=.:GOTO230 120 POKE52,48:POKE56,48:CLR 130 POKE56334,PEEK(56334)OR1:POKE53272,(PEEK(53272)AND240)+12 140 IFPEEK(12288)=60THEN160 150 LOAD"PIECES",8,1 160 DIMA$(25) 170 DEFFNP(QR)=1024+XP+YP*40:DEFFNC(QR)=55296+XP+YP*40:DEFFNJ(QR)=PEEK(56320) 180 REM 190 PRINT"[152][147][144]"; 200 POKE53281,12:FORT=1TO23:PRINT"[152] "; 210 DN$="" 220 NEXT 230 PRINT"";LEFT$(DN$,23); 240 PRINT"[144] A [159]B C D [149]E [151]F G H I J K L M [144]O S[157]^[145] Z [153][163] [210][145]"; 250 OV$="" 260 FORD=.TO15:PRINT"";LEFT$(OV$,36)LEFT$(DN$,D+6);:POKE646,D:PRINT"[209][209]":NEXT 270 PRINT""TAB(37)"[144]ALL" 280 PRINT""TAB(36)"[144]SAVE" 290 PRINT""TAB(36)"[144]LOAD":PRINT""TAB(36)"QUIT" 300 XP=.:YP=.:QR=.:PC=PEEK(FNP(QR)):CH=5:SH=9:PS=PEEK(FNC(QR)):SP=40:BS=.:BC=32 310 BC=32:IFCH=32THENBC=160 320 GETA$:IFFNJ(QR)<>127ORA$<>""THENJ=FNJ(QR):GOTO350 330 POKEFNP(QR),CH:POKEFNC(QR),SH:FORT=1TO20:NEXT 340 POKEFNP(QR),BC:POKEFNC(QR),BS:GOTO320 350 IFJ=126ANDYP>.THENGOSUB880:YP=YP-1:GOTO900 360 IFJ=125ANDYP<22THENGOSUB880:YP=YP+1:GOTO900 370 IFJ=123ANDXP>.THENGOSUB880:XP=XP-1:GOTO900 380 IFJ=119ANDXP<35THENGOSUB880:XP=XP+1:GOTO900 382 IFJ=122ANDXP>.ANDYP>0THENGOSUB880:YP=YP-1:XP=XP-1:GOTO900 384 IFJ=118ANDYP>0ANDXP<35THENGOSUB880:YP=YP-1:XP=XP+1:GOTO900 386 IFJ=121ANDXP>.ANDYP<22THENGOSUB880:XP=XP-1:YP=YP+1:GOTO900 388 IFJ=117ANDXP<35ANDYP<22THENGOSUB880:XP=XP+1:YP=YP+1:GOTO900 390 IFA$=CHR$(160)ANDXP>1THENGOSUB880:XP=XP-2:GOTO900 400 IFA$=""THENGOSUB880:XP=35:GOTO900 410 IFA$=" "ANDXP<33THENGOSUB880:XP=XP+2:GOTO900 420 IFA$="[157]"THENGOSUB880:XP=.:GOTO900 430 IFA$="[147]"THEN190 440 IFA$="[145]"THENGOSUB880:YP=.:GOTO900 450 IFA$="M"THENGOSUB880:XP=17:YP=11:GOTO900 460 IFA$=""THENGOSUB880:YP=22:GOTO900 470 IFA$="E"THENPOKEFNP(QR),PEEK(2023):POKEFNC(QR),PEEK(53281):GOSUB870:GOTO900 480 IFJ=111ANDYP<22ANDXP<35THENGOSUB890:GOTO900 490 IFJ=110ANDYP>.ANDXP<35THENGOSUB890:YP=YP-1:GOTO900 500 IFJ=109ANDYP<22ANDXP<35THENGOSUB890:YP=YP+1:GOTO900 510 IFJ=107ANDXP>.ANDXP<35ANDYP<22THENGOSUB890:XP=XP-1:GOTO900 520 IFJ=103ANDXP<35ANDYP<22THENGOSUB890:XP=XP+1:GOTO900 530 IFJ<>111THEN310 540 IFYP=22ANDPEEK(1024+XP+(YP+1)*40)<>CHTHENCH=PEEK(1024+XP+(YP+1)*40):GOTO310 550 IFYP=22ANDPEEK(1024+XP+(YP+1)*40)=CHTHENSH=PEEK(55296+XP+(YP+1)*40):GOTO310 560 IFXP=35ANDYP>5THENSH=PEEK(55296+(XP+1)+YP*40):GOTO310 570 IFYP=.THEN610 580 IFYP=1THEN630:REM * SAVE 590 IFYP=2THEN820:REM * LOAD 593 IFYP=4THENGOSUB1000:GOTO230:REM * QUIT 600 GOTO330 610 FORT=1024TO1983:IFPEEK(T)=CHTHENPOKE54272+T,SH 620 NEXT:GOTO330 630 PRINT"";LEFT$(DN$,23);" " 640 PRINT"";LEFT$(DN$,23); 650 PRINT"ENTER THE # FOR THIS MAZE-- ";:B$="":GOSUB940 655 MN$=RIGHT$(STR$(N),LEN(STR$(N))-1) 660 PRINT"";LEFT$(DN$,23)"[144] " 670 FORD=.TO22:PRINT"";LEFT$(OV$,35)LEFT$(DN$,D);:PRINT" ":NEXT 680 CLOSE15:OPEN15,8,15,"I0:" 685 PRINT#15,"S0:MAZE "+MN$+".ML":PRINT#15,"I0":PRINT#15,"S0:MAZE "+MN$+"/C.ML" 690 PRINT#15,"I0:":CLOSE15 700 O=1024:PRINT"";LEFT$(DN$,23)"PLEASE WAIT... " 710 FORY=.TO22:A$(Y)="":FORX=.TO38:A=PEEK(1024+X+Y*40) 720 IFA=15THENXX=X:YY=Y 730 A$(Y)=A$(Y)+CHR$(A) 740 NEXT:NEXT 750 OPEN2,8,2,"0:MAZE "+MN$+".ML,P,W":PRINT#2,CHR$(0)+CHR$(4); 760 FORT=.TO22:PRINT#2,A$(T)+" ";:NEXT:PRINT#2,CHR$(XX):PRINT#2,CHR$(YY):CLOSE2 770 FORY=.TO22:A$(Y)="":FORX=.TO38:A=PEEK(55296+X+Y*40) 780 A$(Y)=A$(Y)+CHR$(A) 790 NEXT:NEXT 800 OPEN2,8,2,"0:MAZE "+MN$+"/C.ML,P,W":PRINT#2,CHR$(0)+CHR$(216); 810 FORT=.TO22:PRINT#2,A$(T)+" ";:NEXT:CLOSE2:GOTO230 820 INPUT"[147]MAZE NUMBER";MN$ 830 ML=1 840 LOAD"MAZE "+MN$+".ML",8,1 850 ML=2:LOAD"MAZE "+MN$+"/C.ML",8,1 860 STOP 870 PC=PEEK(2023):PS=PEEK(53281):RETURN 880 POKEFNP(QR),PC:POKEFNC(QR),PS:RETURN 890 PC=CH:PS=SH:POKEFNP(QR),CH:POKEFNC(QR),SH:RETURN 900 PS=PEEK(FNC(QR)):PC=PEEK(FNP(QR)):IFCH=32THENBC=160:GOTO920 910 BC=32 920 POKEFNP(QR),CH:POKEFNC(QR),SH 930 POKEFNP(QR),BC:POKEFNC(QR),BS:GOTO320 940 GETA$:IFA$=""THEN940 950 IFA$=CHR$(13)THENN=VAL(B$):RETURN 960 IFA$=CHR$(20)ANDB$<>""THENPRINT"[157] [157]";:B$=LEFT$(B$,LEN(B$)-1):GOTO940 970 IFVAL(A$)=.ANDA$<>"0"THEN940 980 B$=B$+A$:PRINT"[144]"A$;:GOTO940 1000 PRINT"";LEFT$(DN$,23);" " 1005 PRINT"";LEFT$(DN$,23); 1010 PRINT"ARE YOU SURE YOU WANT TO QUIT? (Y/N)" 1015 GETT$:IFT$<>"Y"ANDT$<>"N" THEN1015 " 1020 [139]T$[178]"N"[167][142] 1030 [151]52,160:[151]56,160:[151]53272,([194](53272)[175]240)[176]4:[153]"LOAD":[147]"AS MENU",8